home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.plaf.basic;
-
- import java.awt.Dimension;
- import java.beans.PropertyChangeListener;
- import javax.swing.JComponent;
- import javax.swing.JMenu;
- import javax.swing.KeyStroke;
- import javax.swing.Timer;
- import javax.swing.event.ChangeListener;
- import javax.swing.event.MenuDragMouseListener;
- import javax.swing.event.MenuKeyListener;
- import javax.swing.event.MenuListener;
- import javax.swing.event.MouseInputListener;
- import javax.swing.plaf.ComponentUI;
-
- public class BasicMenuUI extends BasicMenuItemUI {
- protected ChangeListener changeListener;
- protected PropertyChangeListener propertyChangeListener;
- protected MenuListener menuListener;
- private int lastMnemonic = 0;
-
- protected ChangeListener createChangeListener(JComponent var1) {
- return new ChangeHandler(this, (JMenu)var1, this);
- }
-
- protected MenuDragMouseListener createMenuDragMouseListener(JComponent var1) {
- return new MenuDragMouseHandler(this);
- }
-
- protected MenuKeyListener createMenuKeyListener(JComponent var1) {
- return new MenuKeyHandler(this);
- }
-
- protected MenuListener createMenuListener(JComponent var1) {
- return new MenuHandler();
- }
-
- protected MouseInputListener createMouseInputListener(JComponent var1) {
- return new MouseInputHandler(this);
- }
-
- protected PropertyChangeListener createPropertyChangeListener(JComponent var1) {
- return new PropertyChangeHandler(this);
- }
-
- public static ComponentUI createUI(JComponent var0) {
- return new BasicMenuUI();
- }
-
- public Dimension getMaximumSize(JComponent var1) {
- if (((JMenu)super.menuItem).isTopLevelMenu()) {
- Dimension var2 = var1.getPreferredSize();
- return new Dimension(var2.width, 32767);
- } else {
- return null;
- }
- }
-
- protected String getPropertyPrefix() {
- return "Menu";
- }
-
- protected void installDefaults() {
- super.installDefaults();
- ((JMenu)super.menuItem).setDelay(200);
- }
-
- protected void installKeyboardActions() {
- if (super.menuItem.getModel().getMnemonic() != this.lastMnemonic) {
- super.menuItem.unregisterKeyboardAction(KeyStroke.getKeyStroke(this.lastMnemonic, 8, false));
- this.lastMnemonic = super.menuItem.getModel().getMnemonic();
- super.menuItem.registerKeyboardAction(new PostAction((JMenu)super.menuItem, true), KeyStroke.getKeyStroke(this.lastMnemonic, 8, false), 2);
- }
-
- }
-
- protected void installListeners() {
- super.installListeners();
- this.changeListener = this.createChangeListener(super.menuItem);
- this.propertyChangeListener = this.createPropertyChangeListener(super.menuItem);
- this.menuListener = this.createMenuListener(super.menuItem);
- super.menuItem.addChangeListener(this.changeListener);
- super.menuItem.addPropertyChangeListener(this.propertyChangeListener);
- ((JMenu)super.menuItem).addMenuListener(this.menuListener);
- }
-
- protected void setupPostTimer(JMenu var1) {
- Timer var2 = new Timer(var1.getDelay(), new PostAction(var1, false));
- var2.setRepeats(false);
- var2.start();
- }
-
- protected void uninstallDefaults() {
- super.menuItem.setArmed(false);
- super.menuItem.setSelected(false);
- super.menuItem.resetKeyboardActions();
- super.uninstallDefaults();
- }
-
- protected void uninstallKeyboardActions() {
- super.menuItem.unregisterKeyboardAction(KeyStroke.getKeyStroke(this.lastMnemonic, 8, false));
- this.lastMnemonic = 0;
- }
-
- protected void uninstallListeners() {
- super.uninstallListeners();
- super.menuItem.removeChangeListener(this.changeListener);
- super.menuItem.removePropertyChangeListener(this.propertyChangeListener);
- ((JMenu)super.menuItem).removeMenuListener(this.menuListener);
- this.changeListener = null;
- this.propertyChangeListener = null;
- this.menuListener = null;
- }
- }
-